﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Configuration;
using System.Data;
using System.Data.SqlClient;


namespace DAL
{
    public class DataService
    {
        string stringconnect = ConfigurationManager.ConnectionStrings["QLST"].ConnectionString;
        SqlConnection conn;
        public DataService()
        {
        }

        /**đổ dữ liệu lên DataTable 
         *@Chuổi sql
         *@mảng tham số cần truyền
         * */
        // phương thức lấy dữ liệu không dùng  store procedure
        public DataTable layDulieu(string sql, params SqlParameter[] thamso)
        {
            Moketnoi();
            var table = new DataTable();
            var comand = new SqlCommand(sql,conn);
            comand.Parameters.AddRange(thamso);
            table.Load(comand.ExecuteReader());
            Dongketnoi();
            return table;
        }
        // phương thức lấy dữ liệu dùng cho store procedure
        public DataTable layDulieuSP(string sql, params SqlParameter[] thamso)
        {
            Moketnoi();
            var table = new DataTable();
            var comand = new SqlCommand(sql, conn);

            comand.Parameters.AddRange(thamso);
            comand.CommandType = CommandType.StoredProcedure;
            table.Load(comand.ExecuteReader());
            Dongketnoi();
            return table;
        }
        // phương thức cập nhật dữ liệu không dùng  store procedure
        public void CapnhatDulieu(string sql, params SqlParameter[] thamso)
        {
            Moketnoi();
            var table = new DataTable();
            var comand = new SqlCommand(sql, conn);
            comand.Parameters.AddRange(thamso);
            comand.ExecuteNonQuery();
            Dongketnoi();
        }
        // phương thức cập nhật dữ liệu dùng cho store procedure
        public void CapnhatDulieuSP(string sql, params SqlParameter[] thamso)
        {
            Moketnoi();
            var table = new DataTable();
            var comand = new SqlCommand(sql, conn);
            comand.Parameters.AddRange(thamso);
            comand.ExecuteNonQuery();
            Dongketnoi();
        }

        //Mở Kết nối
        public void Moketnoi()
        {

            try
            {
                conn = new SqlConnection(stringconnect);
                conn.Open();
            }
            catch (Exception)
            {
                throw;
            }
        }
        //Đóng kết nối
        public void Dongketnoi()
        {
            conn.Close();
        }
    }
}
